package com.songtech.set.service;


import java.sql.SQLException;
import java.util.List;
import java.util.Objects;

import javax.annotation.Resource;

import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.songtech.base.universal.dao.BaseDaoImpl;
import com.songtech.set.dao.TerminalInfoDao;
import com.songtech.set.modle.TerminalInfo;





@Service
public class TermianlInfoService{
	@Resource
	private TerminalInfoDao terminalInfoDao;
	
	

	/**
	 * 根据登录名查询记的条数
	 * @return
	 */
	public Integer selectTerminalName(String terminalName,String imei)throws SQLException{
		//首先根据imei来查询数据库中有没有记录
		TerminalInfo bean = selectTerminalInfo(imei);
		if (bean !=null) {
			//判断此设备是否已保存登录名
			if (StringUtils.isEmpty(bean.getTerminalName())) {
				//没有保存登录名时，可以保存
				return 0;
			}else {
				//如果已有，但前台未做修改时，可以保存（判断已有设备的登录名称是否为空）
				if (Objects.equals(bean.getTerminalName(),terminalName)) {
					return 0;
				}else {	
					//如果已有，但前台做修改时，先查询数据库中该名称个数
					Integer data=terminalInfoDao.selectTerminalName(terminalName);
					return data;
				}
				
				
			}
		}
		return 0;
	
	}
	
	/**
	 * 根据Imei来查询设备信息
	 * @param terminalInfo
	 * @return
	 * @throws SQLException 
	 */
	public TerminalInfo selectTerminalInfo(String imei) throws SQLException{
		return terminalInfoDao.selectTerminalInfo(imei);
		
	}

	/**
	 * 根据terminalName
	 * @param terminalName
	 * @return
	 * @throws SQLException
	 */
	public TerminalInfo selectTerminalInfoByName(String terminalName){
		return terminalInfoDao.selectTerminalInfoByName(terminalName);
	}

	/**
	 * 修改设备信息
	 * @param imei
	 * @return
	 */
	public boolean updateTerminalInfo(TerminalInfo terminalnfo){
		if(terminalnfo == null){	
			return  false;
		}
		terminalInfoDao.updateTerminalInfo(terminalnfo);
		return  true;
	}

	
	/**
	 * 新增设备信息
	 * @param terminalnfoModle
	 * @return
	 */
	public boolean insertTerminalInfo(TerminalInfo terminalnfoModle){
		if(terminalnfoModle == null){
			return false;
		}
		terminalInfoDao.insertTerminalInfo(terminalnfoModle);
		return true;
	}
	
	
	
	/**
	 *判断设备信息表是新增还是修改 
	 * @param terminalnfoModle
	 * @throws SQLException 
	 */
	public boolean judge(TerminalInfo terminalnfo){
		/*try {
			List<TerminalInfo> listTerminal =  baseDaoImpl.select(terminalnfo);
			if (CollectionUtils.isNotEmpty(listTerminal)) {
				updateTerminalInfo(terminalnfo);
			}else{
				insertTerminalInfo(terminalnfo);
			}
		} catch (SQLException e) {
			e.printStackTrace();
			return false;
		}*/
		TerminalInfo terminalInfo1=terminalInfoDao.selectTerminalInfo(terminalnfo.getImei());
		if (terminalInfo1!=null) {
			updateTerminalInfo(terminalnfo);
		}else{
			insertTerminalInfo(terminalnfo);
		}
		return true;
		
	}


}
